Tipo de datos

Top 

 

    Bit

    Entero (16bit)

    Entero largo (32bit)

    Real (punto flotante)

 

 

|<----------------------- entero 32bit ------------------------>|

|                                                               |

|<------ entero 16bit --------->|<------ entero 16bit --------->|

|                               |                               |

|_______________________________|_______________________________|

| |B| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |

 ¯¯¯\¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

 |   \___ bit                  | |                             |

31                            16 15                            0

 

 

  • Un dato tipo Bit solo puede tener los valores 1 o 0
  • Un dato Entero puede tener los valores desde -32768 hasta 32767
  • Un Largo abarca los valores desde -2147483648 hasta 2147483647
  • Un real (de simple precisión)  -3.4028235E+38 hasta -1.401298E-45 para negativos, y 1.401298E-45 a 3.4028235E+38 para positivos

 

        El tipo común es el Entero de 16bit, y es posible hacer referencia a cada uno de sus bits. Ejemplo:

       

    i0 hace referencia a los 16bits de las entradas digitales, q0 hace referencia a los 16bits de las salidas digitales.

    i0.0 hace referencia a la 1º entrada digital (bit 0), q0.15 hace referencia al último bit de la variable correspondiente a las salidas digitales.

 

        El entero largo y el real no son comunes y están reservados para las funciones aritméticas y comparaciones, por lo que no se puede usar  algo como i0.25. Las 4 operaciones, las comparaciones, INC, DEC, LD y ST pueden usar estos tipos. Para esto es necesario usar variables declaradas. Esto significa que si se hace un LD v0 lo hará en 16bit, pero si se declara una variable como entero largo o real en la posición de v0 (ocupará v0 y v1) la operación se hará correctamente.

        Los números son tomados como constantes, y su tipo (entero, largo o real) será determinado por la forma que esté escrito. Un LD 2 cargará el acumulador con un entero de valor 2, un LD 80000 cargará el acumulador con un largo de valor ochenta mil, y un LD 1.23 cargará el acumulador con un real uno coma veintitrés. Esta regla puede modificarse de la siguiente forma (norma IEC61131):

  • Para tomar como largo un número comprendido entre -32768 y 32767 (entero) debe anteponerse la declaración di#. Ejemplo: LD di#2.

  • Para tomar un número como real se debe expresar con formato decimal. Ejemplo: LD 1.0, o también LD 1.0e5 (cien mil).

       Los enteros y enteros largos pueden también expresarse en binario, octal y hexadecimal:

  • Entero en binario: i#2#10011 (representa el número 19)

  • Entero en octal: i#8#23 (representa el número 19)

  • Entero en hexadecimal: i#16#13 (representa el número 19)

  • Entero largo en binario: id#2#100001100 (representa el número 268)

  • Entero largo en octal: id#8#414 (representa el número 268)

  • Entero largo en hexadecimal: id#16#10C (representa el número 268)

 

 

En la imagen están los tipos de datos que se pueden declarar. Nótese que el salto de la variable llamada Total a Prop es de 2 posiciones. Esto es debido a su tamaño (el doble), y así se evita que se superpongan.

 

 

Aquí las variables están superpuestas. Es lo que en C se llama unión. Los nombres que se le han asignado coinciden con el tipo de superposición. De esta forma, lo que le acontece a una se refleja en la otra, ya que es la misma cosa con varios nombres.

 

 

        Un largo equivale a 2 enteros adyacentes. Para pasar datos de uno a otro utilice BLKMOVE.

 


 Lista de instrucciones
 Ejemplos matemática


 Indice